第2节 无人驾驶数据采集、训练与测试
搭建起车道,然后运行相应的收集数据的程序,按下键盘方向键控制小车行驶,每按一次方向键,程序就会记录下一帧相应的图像。让小车平均遍历自动驾驶中可能出现的各种情况,按‘q‘退出数据采集,然后再运行相应的模型训练程序训练自动驾驶神经网络。最后使用训练好的神经网络模型在跑道上进行测试。
原理图
摄像头->大白\n树莓派: CSI/USB
大白\n树莓派-->客户端: WiFi
Note right of 大白\n树莓派: HTTP协议传送摄像头数据\n神经网络收集和训练数据
硬件准备
硬件清单
- 纸
- 胶带
硬件搭建-跑道
- 地面颜色为纯色,与所用纸张的颜色对比度应较大
- 跑道的宽度稍大于车的宽度
- 可以把拐弯处的弯度设计得稍大一些
采集驾驶数据
1.打开终端,执行以下命令
cd ~/Desktop/learn-ai/codes/chapter5/SelfDrivingCar
cd computer
python3 collect_training_data.py
2.新建一个终端窗口
cd ~/Desktop/learn-ai/codes/chapter5/SelfDrivingCar
cd raspberryPi
python3 stream_client.py
3.开始采集
顺利执行后会出现两个窗口,上面的是摄像头的画面,下面的是操作区。 将鼠标焦点移到箭头所指的工作区上。
把小车放置在跑道上,点击键盘上下左右光标控制小车。
通过键盘控制,让小车在跑道上正确的绕行数圈(3圈左右即可)
训练结束后,确定焦点仍在工作区上,点击键盘
q
退出训练,程序会自动保存驾驶数据
训练驾驶数据
1.新建一个终端窗口
cd ~/Desktop/learn-ai/codes/chapter5/SelfDrivingCar
cd computer
python3 model_training.py
2.得到模型
模型文件在~/Desktop/learn-ai/chapter5/SelfDrivingCar/computer/saved_model/nn_model.xml
开始无人驾驶
根据训练好的神经网络模型,现在我们可以实现自动驾驶
1.打开终端
cd ~/Desktop/learn-ai/codes/chapter5/SelfDrivingCar
cd computer
python3 rc_drive_nn_only.py
2.新建一个终端窗口
cd ~/Desktop/learn-ai/codes/chapter5/SelfDrivingCar
cd raspberryPi
python3 stream_client.py